/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package e.z.blog.back.com.impl;

import e.z.blog.back.com.ComGetIpApi;
import javax.servlet.http.HttpServletRequest;
import org.nutz.ioc.loader.annotation.IocBean;

/**
 *
 * @author EnzoZhong
 */

@IocBean
public class ComGetIp implements ComGetIpApi {

        /**
         * 
         */
        public ComGetIp() {
        }

        /**
         * 
         * @param request
         * @return
         */
        @Override
        public String getIP( HttpServletRequest request ) {
                String ip = request.getHeader( "X-Forwarded-For" );
                if ( ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase( ip ) ) {
                        ip = request.getHeader( "Proxy-Client-IP" );
                }
                if ( ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase( ip ) ) {
                        ip = request.getHeader( "WL-Proxy-Client-IP" );
                }
                if ( ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase( ip ) ) {
                        ip = request.getHeader( "HTTP_CLIENT_IP" );
                }
                if ( ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase( ip ) ) {
                        ip = request.getHeader( "HTTP_X_FORWARDED_FOR" );
                }
                if ( ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase( ip ) ) {
                        ip = request.getRemoteAddr();
                }
                return ip;
        }
}
